﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:my="clr-namespace:WgpgGUI">

    <SolidColorBrush x:Key="SearchTextBox_Background" Color="White"/>
    
    <LinearGradientBrush x:Key="SearchTextBox_Background_Gradient" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#F6FAFD" Offset="0"/>
        <GradientStop Color="#F7FBFE" Offset="1"/>
    </LinearGradientBrush>
    
    <SolidColorBrush x:Key="SearchTextBox_Foreground" Color="Black"/>
    
    <LinearGradientBrush x:Key="SearchTextBox_Border" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFABADB3" Offset="0.05"/>
        <GradientStop Color="#FFE2E3EA" Offset="0.07"/>
        <GradientStop Color="#FFE3E9EF" Offset="1"/>
    </LinearGradientBrush>
    
    <LinearGradientBrush x:Key="SearchTextBox_BorderMouseOver" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FF5C97C1" Offset="0.05"/>
        <GradientStop Color="#FFB9D7EB" Offset="0.07"/>
        <GradientStop Color="#FFC7E2F1" Offset="1"/>
    </LinearGradientBrush>
    
    <SolidColorBrush x:Key="SearchTextBox_SearchIconBorder" Color="Transparent"/>
    
    <SolidColorBrush x:Key="SearchTextBox_SearchIconBackground" Color="Transparent"/>
    
    <LinearGradientBrush x:Key="SearchTextBox_SearchIconBorder_MouseOver" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFFFFFFF" Offset="0"/>
        <GradientStop Color="#FFE5F4FC" Offset="1"/>
    </LinearGradientBrush>
    
    <LinearGradientBrush x:Key="SearchTextBox_SearchIconBackground_MouseOver" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFE7F5FD" Offset="0"/>
        <GradientStop Color="#FFD2EDFC" Offset="0.5"/>
        <GradientStop Color="#FFB6E3FD" Offset="0.51"/>
        <GradientStop Color="#FF9DD5F3" Offset="1"/>
    </LinearGradientBrush>
    
    <LinearGradientBrush x:Key="SearchTextBox_SearchIconBorder_MouseDown" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFFFFFFF" Offset="0"/>
        <GradientStop Color="#FFE5F4FC" Offset="1"/>
    </LinearGradientBrush>
    
    <LinearGradientBrush x:Key="SearchTextBox_SearchIconBackground_MouseDown" StartPoint="0,0" EndPoint="0,1">
        <GradientStop Color="#FFE7F5FD" Offset="0"/>
        <GradientStop Color="#FFD2EDFC" Offset="0.5"/>
        <GradientStop Color="#FFB6E3FD" Offset="0.51"/>
        <GradientStop Color="#FF9DD5F3" Offset="1"/>
    </LinearGradientBrush>
    
    <SolidColorBrush x:Key="SearchTextBox_LabelTextColor" Color="Gray"/>

    <Style x:Key="{x:Type my:SearchTextBox}" TargetType="{x:Type my:SearchTextBox}">
        <Setter Property="Cursor" Value="IBeam"/>
        <Setter Property="Background" Value="{StaticResource SearchTextBox_Background_Gradient}"/>
        <Setter Property="BorderBrush" Value="{StaticResource SearchTextBox_Border}"/>
        <Setter Property="Foreground" Value="{StaticResource SearchTextBox_Foreground}"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="LabelText" Value="Search"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="LabelTextColor" Value="{StaticResource SearchTextBox_LabelTextColor}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type my:SearchTextBox}">
                    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualHeight}"/>
                            </Grid.ColumnDefinitions>
                            <ScrollViewer x:Name="PART_ContentHost" Margin="2" Grid.Column="0"/>
                            <Label x:Name="SearchTextBox_Label" Margin="2" Grid.Column="0" Foreground="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=LabelTextColor}" Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=LabelText}" Padding="2,0,0,0" FontStyle="Italic"/>
                            <Border x:Name="SearchTextBox_IconBorder" Cursor="Arrow" Grid.Column="1" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="{StaticResource SearchTextBox_SearchIconBorder}" Background="{StaticResource SearchTextBox_SearchIconBackground}">
                                <Image x:Name="SearchTextBox_Icon" Stretch="None" Width="15" Height="15" HorizontalAlignment="Center" VerticalAlignment="Center" Source="/WgpgCore;component/Images/search.png"/>
                            </Border>
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="BorderBrush" Value="{StaticResource SearchTextBox_BorderMouseOver}"/>
                            <Setter Property="Background" Value="{StaticResource SearchTextBox_Background}"/>
                        </Trigger>
                        <Trigger Property="IsKeyboardFocusWithin" Value="True">
                            <Setter Property="BorderBrush" Value="{StaticResource SearchTextBox_BorderMouseOver}"/>
                            <Setter Property="Background" Value="{StaticResource SearchTextBox_Background}"/>
                            <Setter Property="Visibility" TargetName="SearchTextBox_Label" Value="Hidden"/>
                        </Trigger>
                        <Trigger Property="HasText" Value="True">
                            <Setter Property="Visibility" TargetName="SearchTextBox_Label" Value="Hidden"/>
                            <Setter Property="Background" Value="{StaticResource SearchTextBox_Background}"/>
                            <Setter Property="Source" TargetName="SearchTextBox_Icon" Value="/WgpgCore;component/Images/clear.png"/>
                        </Trigger>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="IsMouseOver" SourceName="SearchTextBox_IconBorder" Value="True"/>
                                <Condition Property="HasText" Value="True"/>
                            </MultiTrigger.Conditions>
                            <Setter Property="BorderBrush" TargetName="SearchTextBox_IconBorder" Value="{StaticResource SearchTextBox_SearchIconBorder_MouseOver}"/>
                            <Setter Property="Background" TargetName="SearchTextBox_IconBorder" Value="{StaticResource SearchTextBox_SearchIconBackground_MouseOver}"/>
                        </MultiTrigger>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="IsMouseOver" SourceName="SearchTextBox_IconBorder" Value="True"/>
                                <Condition Property="IsMouseLeftButtonDown" Value="True"/>
                                <Condition Property="HasText" Value="True"/>
                            </MultiTrigger.Conditions>
                            <Setter Property="Padding" TargetName="SearchTextBox_IconBorder" Value="2,0,0,0"/>
                            <Setter Property="BorderBrush" TargetName="SearchTextBox_IconBorder" Value="{StaticResource SearchTextBox_SearchIconBorder_MouseOver}"/>
                            <Setter Property="Background" TargetName="SearchTextBox_IconBorder" Value="{StaticResource SearchTextBox_SearchIconBackground_MouseOver}"/>
                        </MultiTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>
